package com.topnav.mc.admin.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.topnav.mc.entity.base.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 *
 * 设备报警
 * @Author: kenny
 * @Date: 2023/11/6 13:55
 */
@Data
@Accessors(chain = true)
@TableName("mc_device_alarm")
public class DeviceAlarm extends BaseEntity {
    private static final long serialVersionUID = -8624441508255668856L;
    private Long deviceId;
    private Long channelId;
    //private String deviceCode;
    //private String channelCode;
    private String alarmPriority; //报警方式

    private String alarmMethod;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date alarmTime;
    private String alarmDescription;
    private Double longitude;
    private Double latitude;
    //1 SOS 报警，2围栏报敬 3 人脸报警， 4 车辆报警
    private Integer alarmCate;
    /**
     * alarmCate = 1时
     * 报警类型,
     * 报警方式为2时,不携带 AlarmType为默认的报警设备报警,
     * 携带 AlarmType取值及对应报警类型如下:
     * 		1-视频丢失报警;
     * 		2-设备防拆报警;
     * 		3-存储设备磁盘满报警;
     * 		4-设备高温报警;
     * 		5-设备低温报警。
     * 报警方式为5时,取值如下:
     * 		1-人工视频报警;
     * 		2-运动目标检测报警;
     * 		3-遗留物检测报警;
     * 		4-物体移除检测报警;
     * 		5-绊线检测报警;
     * 		6-入侵检测报警;
     * 		7-逆行检测报警;
     * 		8-徘徊检测报警;
     * 		9-流量统计报警;
     * 		10-密度检测报警;
     * 		11-视频异常检测报警;
     * 		12-快速移动报警。
     * 报警方式为6时,取值下:
     * 		1-存储设备磁盘故障报警;
     * 		2-存储设备风扇故障报警。
     */
    private Integer alarmType;

    private Integer alarmMode;
    private Integer alarmEvent; //1 进入围栏，2 越出围栏

    private Integer dispose;// 0 未处置 1 已处置
    private String disposeBy;// 处置人
    private Long disposeUserId;// 处置人ID
    private String disposeRemark;// 说明
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date disposeTime;// 处置时间

    //报警描述，推送消息会用到
    private String alarmMessage;

}
